As communications over public networks evolve, secure data communications between different computing devices have become increasingly important. Without security, any interloper can obtain access to data being transmitted. With security, however, the data can be protected from unauthorized access. In order to accomplish secure data communications, various encryption/decryption functions have been developed.
In general, there are two common types of encryption/decryption schemes. The first scheme involves symmetric cryptography while the second scheme involves asymmetric cryptography. For asymmetric cryptography, a key pair is utilized in which one key is used for encryption and the other key is used for decryption. However, computations involving asymmetric cryptographic algorithms are complex, which contributes to greater processing time and slower overall system performance. In contrast, symmetric cryptographic ciphers (referred to as “ciphers”) utilize a single key for encryption and decryption operations. As a result, ciphers generally perform computations (e.g., encryption or decryption) faster than asymmetric cryptographic functions.
Normally, there are two types of ciphers, namely a stream cipher and a block cipher. One form of stream cipher, named “RC4,” was developed by RSA Data Security, Inc. of Bedford, Mass. However, RC4 and other conventional stream ciphers suffer from a number of disadvantages. For example, RC4 is vulnerable to an attack if a portion of the plain text (original data) and its corresponding cipher text are known. The reason is that a pseudo-random data stream produced by a RC4 cryptographic engine is exclusively OR'ed with the plain text in order to produce the cipher text. Thus, the existence of an identifiable correlation between plain text and cipher text exposes the data produced from the stream cipher to cryptographic attack.
Another disadvantage is that the initial byte of the pseudo-random data stream generated by RC4 is correlated to bytes of the key. In effect, this correlation also exposes the data produced by RC4 to cryptographic attack.
A common feature of encryption is that a plain text maps uniquely to a cipher text for a known encryption key. Thus, if the same plain text is encrypted at a different time with the same encryption key, the same cipher text is generated. This allows an interloper to investigate any correlation between cipher text and plain text in efforts to predict further communications.
Thus, it would be very desirous to have a cipher that overcomes these and other disadvantages associated with RC4 and stream ciphers, and generate different cipher text sequences for the same plain text and a given key, and have all the different cipher text sequences decrypt to the plain text with the same key.